bitkeeper revision 1.636.2.1 (3fcbbc64x-OxidVggJZzaY-7ZkmmVw)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Mon, 1 Dec 2003 22:10:44 +0000 (22:10 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Mon, 1 Dec 2003 22:10:44 +0000 (22:10 +0000)
xc_misc.c:
  mlock console buffer.

tools/xc/lib/xc_misc.c

index dfb550e871471c8f85b588053066fdb5967f98a5..e4efec4a41206d334cb7dade05c4973cba70872b 100644 (file)
@@ -35,9 +35,14 @@ int xc_readconsolering(int xc_handle,
     op.u.readconsole.count = max_chars;
     op.u.readconsole.cmd = clear ? CONSOLE_RING_CLEAR : 0;
 
-    if ( (ret = do_dom0_op(xc_handle, &op)) > 0 )
+    if ( (ret = mlock(str, max_chars)) != 0 )
+        return ret;
+
+    if ( (ret = do_dom0_op(xc_handle, &op)) >= 0 )
         str[ret] = '\0';
 
+    (void)munlock(str, max_chars);
+
     return ret;
 }